Field of the Invention
The present invention relates to grid computing and more particularly to database query processing within an in memory data grid.
Description of the Related Art
Grid computing refers to the use of the computing resources of multiple different computers in a computer communications network to a single computational problem concurrently. Grid computing provides substantial advantage when addressing scientific or technical problems that require a great number of computer processing cycles or access to large amounts of data. Generally, grid computing requires the use of computer program logic enabled to divide a computational problem into management and independently computable problem subsets, and to assign those subsets to as many computing resources in as many computers as required and available. To many, grid computing is thought of as distributed and large-scale cluster computing and as a form of network-distributed parallel processing.
A data grid, in contrast, to a computational grid includes a system composed of multiple servers that work together to manage information and related operations in a distributed environment. An “in memory” data grid, in turn, is a data grid that stores the information in memory in order to achieve very high performance, and uses redundancy—by keeping copies of that information synchronized across multiple servers—in order to ensure the resiliency of the system and the availability of the data in the event of server failure. An in memory data grid achieves low response times for data access by maintaining stored information in memory and in an application object form, and by sharing that information across multiple servers. In other words, applications may be able to access required information without any network communication and without any data transformation step such as an object relational mapping.
When considering adoption of an in memory data grid, adopters consider as a major obstacle the need to modify applications to ‘talk’ to the data grid. In this regard, these applications are typically coded to interface with a database by way of querying according to a known interface, and modifying applications to respect a grid as opposed to a database can be an expensive proposition. An alternative approach includes the creation of stored procedures to interrogate a data grid as opposed to a database. Even still, the stored procedure approach still requires the modification of the underlying application.